export const cloneDeep = (value, hash = new WeakMap()) => {
  // 基本类型直接返回
  if (value === null || typeof value !== "object") return value;
  // 处理循环引用
  if (hash.has(value)) return hash.get(value);
  // 创建新对象或数组
  const result = Array.isArray(value) ? [] : {};
  // 记录当前对象
  hash.set(value, result);
  // 递归拷贝属性
  for (const key in value) {
    result[key] = cloneDeep(value[key], hash);
  }
  return result;
};
